var quickSearch = "";       // 快速查询
var searchCondition = {     // 高级检索
    "datestart" : "",       // 差异时间段开始
    "dateend" : "",         // 差异时间段终止
    "storId":"",           //仓库
    "inventoryType":""          //库存类型
};
var stockCheckList;

/**
 * 页面初期化
 */
$(document).ready(function() {
    //按钮控制
    setPageElementStatus("stockDiffList");

    // 高级检索初期化的时候隐藏
    $("#advSearchPanel").hide();

    // 日期区间选择控件初始化
    $('.reportrange').daterangepicker(
        {
            dateLimit : {
                months : 3
            }, //起止时间的最大间隔
            timePicker : false,
            maxDate : moment().add('days', +1).startOf('day').format(
                'YYYY-MM-DD'),
            opens : 'right', // 日期选择框的弹出位置
            buttonClasses : [ 'btn btn-default' ],
            applyClass : 'btn-small btn-primary blue',
            endDate : moment().add('days', +1).endOf('day').format('YYYY-MM-DD'),
            startDate : moment().add('days').startOf('day').format('YYYY-MM-DD'),
            cancelClass : 'btn-small',
            format : 'YYYY-MM-DD', // 控件中from和to 显示的日期格式
            separator : ' 到 ',
            locale : {
                applyLabel : '确定',
                cancelLabel : '取消',
                fromLabel : '起始时间',
                toLabel : '结束时间',
                customRangeLabel : '自定义',
                daysOfWeek : [ '日', '一', '二', '三', '四', '五', '六' ],
                monthNames : [ '一月', '二月', '三月', '四月', '五月', '六月',
                    '七月', '八月', '九月', '十月', '十一月', '十二月' ],
                firstDay : 1
            }
        },function(start, end) {
            if(!start||!end){
                $('.reportrange span').html("请选择时间区间");
                $('input[name="datestart"]').val("");
                $('input[name="dateend"]').val("");
            }else{
                $('.reportrange span').html(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD'));
                $('input[name="datestart"]').val(start.format("YYYY-MM-DD"));
                $('input[name="dateend"]').val(end.format("YYYY-MM-DD"));
            }});

    $('.reportrange span').html($('input[name="daterangepicker_start"]').val().format('YYYY-MM-DD') + ' - ' + $('input[name="daterangepicker_end"]').val().format('YYYY-MM-DD'));
    $('input[name="datestart"]').val($('input[name="daterangepicker_start"]').val().format('YYYY-MM-DD'));
    $('input[name="dateend"]').val($('input[name="daterangepicker_end"]').val().format('YYYY-MM-DD'));

    $("#btnAdvSearch").click(function() {
        btnAdvSearchflg = true;
        if ($("#advSearchPanel").is(":hidden")) {
            $("#btnQuickSearch").hide();
            $("#advSearchPanel").show();
            $(this).children("i:eq(0)").removeClass("fa-angle-double-down");
            $(this).children("i:eq(0)").addClass("fa-angle-double-up");
        } else {
            $("#advSearchPanel").hide();
            $("#btnQuickSearch").show();
            $(this).children("i:eq(0)").removeClass("fa-angle-double-up");
            $(this).children("i:eq(0)").addClass("fa-angle-double-down");
        }

    });

    //清空按钮点击
    $("#advSearchReset").click(function() {
        var formObj = $("#frmAdvSearch");
        $("#storId").val("");
        $("#inventoryType").val("");
        // $('.reportrange span').html("请选择时间区间");
        // $('input[name="datestart"]').val("");
        // $('input[name="dateend"]').val("");
    });

    /**
     * 搜索框的回车事件
     */
    $('#quickSearch').keydown(function(e){
        if(e.keyCode==13 && $('#btnQuickSearch').is(":visible")){
            $("#btnQuickSearch").click();
        }
    });

    /**
     * 快速搜索，点击时提交表格刷新内容
     */
    $("#btnQuickSearch").click(function() {
        searchCondition = {     // 高级检索
            "datestart" : $("#datestart").val(),       // 差异时间段开始
            "dateend" : $("#dateend").val(),         // 差异时间段终止
            "storId":$("#storId").val(),           //仓库
            "inventoryType":$("#inventoryType").val()          //库存类型
        };
        quickSearch = encodeURI($('#quickSearch').val());

        showData();
    });

    // 高级搜索“提交”按钮点击
    $("#advSearchSubmit").click(function(e) {
        // 记录高级查询的检索条件
        showData();
    });

    // 设置店铺的下拉列表
    getStorList();

    // 显示
    showData();

    // 店铺导出关闭事件发生
    $('#exportList').on('hide.bs.modal', function () {
        // 父窗体归还本页的编辑对话框
        window.top.window.returnCustomModalDialog();
    })

    // 店铺导出，导出按钮点击事件绑定
    $("#btnExportList").click(function(){
        exportStock();
    });

    // 店铺导出关闭事件发生
    $('#exportList').on('shown.bs.modal', function () {
        // 父窗体归还本页的编辑对话框
        window.top.window.$("#select-all").click();
    });
});

// 获取仓库列表
function getStorList() {
    // 获取仓库列表的请求
    $.ajax({
        type : "GET",
        url : "/stock/getStor.action",
        contentType : "application/json;charset=utf-8",
        dataType : "json",
        async : false,// 同步
        success : function(data) {
            if (data.result == "success") {
                $("#storId option").remove();
                $("#storId").append("<option value=''>请选择</option>");
                // $("#storId").append("<option value='all'>全部</option>");
                $.each(data.data, function(n, value) {
                    $('#storId').append("<option value='" + value.storId + "'>" + value.storName + "</option>");
                });
            } else {
                window.top.window.showModalAlert(data.msg);
            }
        },
        error : function(XMLHttpRequest, textStatus) {
            if (XMLHttpRequest.status == 500) {
                var result = eval("(" + XMLHttpRequest.responseText + ")");
                alert(result.errorObject.errorText);
            }
        }
    });
}

/**
 * 主画面的列表刷新
 *
 * @returns
 */
function refresh() {
    showData();
}
function showData() {

    if ( $("#datestart").val()==null &&  $("#datestart").val()==undefined &&  $("#datestart").val()=="" &&
        $("#dateend").val()==null &&  $("#dateend").val()==undefined &&  $("#dateend").val()==""){
        window.top.window.showModalAlert("请选择时间段");
        return false;
    }

    searchCondition = {     // 高级检索
        "datestart" : $("#datestart").val(),       // 差异时间段开始
        "dateend" : $("#dateend").val(),         // 差异时间段终止
        "storId":$("#storId").val(),           //仓库
        "inventoryType":$("#inventoryType").val()          //库存类型
    };
    quickSearch = encodeURI($('#quickSearch').val());

// 如果已经初期化过，不用重新定义，直接重画表格
    if (stockCheckList != null && stockCheckList != undefined && "" != stockCheckList) {
        stockCheckList.draw();
        return;
    }

    stockCheckList = $('#stockCheckList').DataTable({
        "scrollX" : "100%",
        "scrollY" : "410px",
        "scrollCollapse" : false,
        "processing" : true,
        "serverSide" : true,
        "lengthMenu" : [ [ 10, 25, 50, 100, 500, 1000 ], [ 10, 25, 50, 100, 500, 1000 ] ],
        "dom" : '<"bottom"rtflp>',
        "searching" : false,
        "pagingType" : "full_numbers",
        "deferRender" : true,
        "ajax" : {
            "url" : "/stockDiff/showData.action",
            "data" : function(d) {
                d.quickSearch = quickSearch;
                d.formJson = JSON.stringify(searchCondition);
            }
        },
        "tableTools" : {
            "sRowSelect" : "bootstrap"
        },
        "columns" : [
            {
                "data" : "createTime"
            }, {
                "data" : "diffCode"
            }, {
                "data" : "storName"
            }, {
                "data" : "goodsCode"
            }, {
                "data" : "goodsName"
            }, {
                "data" : "skuCode"
            }, {
                "data" : "skuName"
            }, {
                "data" : "storType"
            },{
                "data" : "stockQty"
            }, {
                "data" : "sellCount"
            }, {
                "data" : "qtyDiff"
            }],
        "columnDefs" : [ {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 0 ]
        }, {
            "className" : "truncate-text tooltip-column-detail ",
            "targets" : [ 1 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 2 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 3 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 4 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 5 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 6 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 7 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 8 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 9 ]
        }, {
            "className" : "truncate-text tooltip-column-detail",
            "targets" : [ 10 ]
        }],

        "order" : [ [0, "desc" ] ]
    })
}

$("#stockCheckList").tooltip({
    selector: ".tooltip-column-detail",
    container: "body",
    title: function() {
        if ($(this)[0].scrollWidth > $(this).outerWidth()) {
            return $(this).text();
        }
    }
});

var tableColNm=[];		//画面table的头的项目名称
var tableColVal=[];		//画面table的头的项目名称对应的英文字段

function showExport() {
        tableColNm=new Array();
        tableColVal=new Array();

        $("#public-methods").html('');
        $("#public-methods").append('<option value="createTime">差异生成时间</option>');
        $("#public-methods").append('<option value="diffCode">差异单单号</option>');
        $("#public-methods").append('<option value="storName">仓库</option>');
        $("#public-methods").append('<option value="goodsCode">商品商家编码</option>');
        $("#public-methods").append('<option value="goodsName">商品名称</option>');
        $("#public-methods").append('<option value="skuCode">规格商家编码</option>');
        $("#public-methods").append('<option value="skuName">规格名称</option>');
        $("#public-methods").append('<option value="storType">库存类型</option>');
        $("#public-methods").append('<option value="stockQty">本地计算库存数</option>');
        $("#public-methods").append('<option value="sellCount">第三方仓库存数</option>');
        $("#public-methods").append('<option value="qtyDiff">差异库存数</option>');

        $("#public-methods option").each(function (){
            tableColNm.push($(this).text());
            tableColVal.push($(this).val());
        });

        //刷新隐藏的select项目，将新的option显示到画面上
        $("#refresh").click();

        //清空frame的SRC，相当于重置
        $('#exportFrame').attr('src', '');
        var editDialog = window.top.window.borrowCustomModalDialog($("#exportList"));
        editDialog.modal({show:true, backdrop:'static'});

}

function exportStock(){
    var url = "";

    searchCondition = {     // 高级检索
        "datestart" : $("#datestart").val(),       // 差异时间段开始
        "dateend" : $("#dateend").val(),         // 差异时间段终止
        "storId":$("#storId").val(),           //仓库
        "inventoryType":$("#inventoryType").val()          //库存类型
    };

    // 父窗体归还本页的编辑对话框
    window.top.window.returnCustomModalDialog();

    //画面中选择的需要导出的项目的名字,对应的英文名字
    var selectColNm=new Array();
    var selectColVal=new Array();
    var colNm;
    //根据画面选择，抽取相应的字段名称，汉字
    $('#ms-public-methods .ms-selectable .ms-list li').each(function(){
        if ($(this).attr('class') && $(this).attr('class').indexOf('ms-selected')>-1){
            colNm = $(this).text();
            $.each(tableColNm,function(key,val){
                if (val == colNm){
                    selectColNm.push(val);
                    selectColVal.push(tableColVal[key]);
                }
            });
        }
    });

    //传递参数
    var colName = encodeURI(encodeURI(selectColNm.join(',')));
    var colValue = encodeURI(encodeURI(selectColVal.join(',')));
    var quickSearch = encodeURI(encodeURI($('#quickSearch').val()));

    //如果没有选择项目，给出提示
    if (colName==''){
        window.top.window.showModalAlert("请选择导出项目。");
        window.top.window.borrowCustomModalDialog($("#exportList"));
        return false;
    }

    $.ajax({
        type: 'GET',
        url: "/stockDiff/exportCheckDiff.action?formJson="+encodeURI(encodeURI(JSON.stringify(searchCondition))),
        contentType: "application/json;charset=utf-8",
        dataType: "json",
        async: false,//同步
        success: function (data) {
            if (data.result == "success") {
                $('#exportList').modal('hide');
                //导出的URL
                url = "/stockDiff/exportDataDiff.action?colName="+colName+"&colValue="+colValue+"&quickSearch="+quickSearch+"&formJson="+encodeURI(encodeURI(JSON.stringify(searchCondition)));
                $('#exportFrame').attr('src', url);
                return true;
            } else {
                window.top.window.showModalAlert(data.msg);
                window.top.window.borrowCustomModalDialog($("#exportList"));
                return false;
            }
        },
        error: function () {
            window.top.window.showModalAlert("导出失败。");
            window.top.window.borrowCustomModalDialog($("#exportList"));
            return false;
        }
    });

}